/* 
 * File:   Campania.h
 * Author: fibrizo
 *
 * Created on 24 de mayo de 2014, 16:37
 */

#ifndef CAMPANIA_H
#define	CAMPANIA_H

#include <string>
#include <vector>
#include "server_Nivel.h"

using std::string;
using std::vector;
typedef struct vector<Nivel> vectorN;

class Campania {
private:
    string nombre;
    string rutaImagen;
    string rutaXML;
    vector<Nivel> listaDeNiveles;
    size_t indiceNivelActual;
    size_t dificultad;
    size_t cantJugadores;
public:
    //Constructores
    Campania();
    Campania(string nombre, size_t dificultad, vectorN listaDeNiveles, string ruta, size_t jugadores);
    Campania(const Campania& orig);
    //Setters
    void agregarNivel(Nivel nuevoNivel);
    void setNombre(string nombre);
    void setDificultad(size_t dificultad);
    void setRutaImagen(string ruta);
    void setCantJugadores(size_t jugadores);
    void setRutaXML(string ruta);
    //Getters
    string getNombre();
    string getRutaImagen();
    string getRutaXML();
    string serializar();
    Nivel getNivelActual();
    size_t getDificultad();
    size_t getCantJugadores();
    //Otros Metodos    
    bool cambiarDeNivel(bool resultado);
    //Destructor
    virtual ~Campania();
};

#endif	/* CAMPANIA_H */

